#ifndef BUILDINGBASE_H
#define BUILDINGBASE_H

#include <SFML/Graphics.hpp>

/*TODO: This class is really unfinished
Should plan it and do the templated inherited version.
Traits for stats, Variadic templates for extra abilities (like spells or build commands for peons etc)
*/
class BuildingBase: public sf::Drawable
{
    public:
				BuildingBase (const sf::Vector2f& UpperLeft, const sf::Vector2f& BottomRight);
				~BuildingBase ();
		virtual BuildingBase* clone () = 0;

        const sf::Vector2f& getPosition ();

		virtual void update (const sf::Time& elapsed) = 0;

        virtual void onClick () = 0;
    protected:
        sf::Vector2f    position;
        sf::Texture     texture;
        sf::Sprite      sprite;

    private:
        virtual void draw (sf::RenderTarget& target, sf::RenderStates states) const = 0;
};

#endif // BUILDINGBASE_H
